uuid_generate(uuid->uuid);
}
-static inline void blk_uuid_to_string(blk_uuid_t *uuid, char *out)
+static inline void blk_uuid_to_string(blk_uuid_t *uuid, char *out, size_t size)
{
uuid_unparse(uuid->uuid, out);
}
#include <uuid.h>
#include <string.h>
+#include <stdlib.h>
typedef uuid_t blk_uuid_t;
uuid_create((uuid_t *)uuid, &status);
}
-static inline void blk_uuid_to_string(blk_uuid_t *uuid, char *out)
+static inline void blk_uuid_to_string(blk_uuid_t *uuid, char *out, size_t size)
{
uint32_t status;
- uuid_to_string((uuid_t *)uuid, &out, &status);
+ char *_out = NULL;
+ uuid_to_string((uuid_t *)uuid, &_out, &status);
+ strlcpy(out, _out, size);
+ free(_out);
}
static inline void blk_uuid_from_string(blk_uuid_t *uuid, const char *in)
snprintf(uri, ibl+1, "file://%s", name);
if (iconv(cd,
-#if defined(__linux__) || (__Linux__)
+#if defined(__linux__) || defined(__Linux__)
(char **)
#endif
&urip, &ibl, &uri_utf8p, &obl) == (size_t)-1 ||
}
if (iconv(cd,
-#if defined(__linux__) || (__Linux__)
+#if defined(__linux__) || defined(__Linux__)
(char **)
#endif
&urip, &ibl, &uri_utf16p, &obl) == (size_t)-1 ||
(err ? "failed to read name" : name));
free(name);
- blk_uuid_to_string(&h->prt_uuid, uuid);
+ blk_uuid_to_string(&h->prt_uuid, uuid, sizeof(uuid));
printf("Parent UUID : %s\n", uuid);
vhd_time_to_string(h->prt_ts, time_str);
printf("Checksum : 0x%x|0x%x (%s)\n", f->checksum, cksm,
f->checksum == cksm ? "Good!" : "Bad!");
- blk_uuid_to_string(&f->uuid, uuid);
+ blk_uuid_to_string(&f->uuid, uuid, sizeof(uuid));
printf("UUID : %s\n", uuid);
printf("Saved state : %s\n", f->saved == 0 ? "No" : "Yes");